home *** CD-ROM | disk | FTP | other *** search
/ Aminet 16 / Aminet 16 (1996)(GTI - Schatztruhe)[!][Dec 1996].iso / Aminet / misc / emu / QDOS1.lha / QLboot / DOCs / Amiga-QDOS.doc next >
Text File  |  1996-10-15  |  61KB  |  1,838 lines

  1.   ____      _  _     _   ____    ____       ____   ____      ____      ____
  2.  / __ \  / \/ \ | | / ___|  / __ \      / __ \ |  _ \  / __ \  / ___|
  3. | |__| ||      || || |     _ | |__| |  __  | |  | || | \ \| |  | | \_ \
  4. |  __  || |\/| || || |__| ||  __  | |__| | |_/    \| |_/ /| |__| | __\ \
  5. |_|  |_||_|  |_||_| \____/ |_|    |_|      \___/\/|____/  \____/ |____/
  6.  
  7. S O F T W A R E   Q D O S   E M U L A T O R   F O R   T H E   A M I G A
  8.  
  9. --------------------------------------------------------------------------
  10.  
  11. ›1m›4mVERSION 3.23 ARCHIVE CONTENTS›0m
  12.  
  13. 'QDOS4amiga1.lha'  QL clone (binaries and documentation)
  14.  
  15. 'QDOS4amiga2.lha'  QL clone (assembly source)
  16.  
  17. 'QDOS4amiga3.lha'  QL clone (QDOS utilities disk)
  18.            Mount the QLfilesystem, then copy the files from
  19.            this archive onto a QDOS format disk.
  20.  
  21. --------------------------------------------------------------------------
  22.  
  23. ›1m›4mAMIGA-QDOS v3.23 FEATURES›0m
  24.  
  25. *  FASTER than the original QL
  26. *  LOADS/SAVES to QL floppy disks
  27. *  SOUND supported in full (all possible convolutions of BEEP)
  28. *  SYSTEM VARIABLES movable (even into FAST RAM).
  29. *  2ND-SCREEN fully usable (like MINERVA ROM)
  30. *  SCREEN modes 4 and 8 BOTH supported
  31. *  KEYBOARD history from standard <ALT><ENTER> combination
  32. *  ALL known machines supported A500, A500+, A600, A1200, A4000 etc
  33. *  FOR COMPATIBILITY, data and instruction caches can be enabled/disabled
  34. *  FOR COMPATIBILITY, emulates MOVE SR,<ea> in user mode on 68020 & above
  35.    (the instruction is priviledged on 020+).
  36. *  FOR COMPATIBILITY, emulates MOVEP instruction on 68060
  37.    (the instruction is not implemented on the 68060).
  38. *  QDOS utilties disk included with release
  39. *  FILESYSTEM for reading and writing QDOS disks from AmigaDOS
  40. *  BASED ON a JS ROM with many JS ROM bug fixes.
  41. *  SOURCE included
  42.  
  43. --------------------------------------------------------------------------
  44.  
  45. ›1m›4mWHAT'S NEW IN VERSION 3.23›0m
  46.  
  47. *  SOUND supported in full (all possible convolutions of BEEP)
  48. *  SYSTEM ROM can be re-located to run from FAST RAM
  49. *  SYSTEM VARIABLES movable (even into FAST RAM).
  50. *  2ND-SCREEN fully usable (like MINERVA ROM)
  51. *  SCREEN modes 4 and 8 BOTH supported
  52. *  KEYBOARD history from standard <ALT><ENTER> combination
  53. *  ALL known machines supported A500, A500+, A600, A1200, A4000 etc
  54. *  Many JS ROM bug fixes.
  55.  
  56. --------------------------------------------------------------------------
  57.  
  58. ›1m›4mQUICK OVERVIEW›0m
  59.  
  60. This is a major reworking of Rainer Kowallik's QL emulator for the
  61. Amiga. Most of the new features have been added by Mark J Swift
  62. (e-mail: msw@blackpool.ac.uk) - Rainer is no-longer involved in
  63. the project. The release includes full assembler source and a QDOS
  64. utilities disk. Also included is a filesystem by Francis N Swift for
  65. handling QDOS disks from the Amiga side.
  66.  
  67. --------------------------------------------------------------------------
  68.  
  69. ›1m›4mQL FILESYSTEM›0m
  70.  
  71. The QL filesystem is a handler written by F N Swift that allows
  72. transparent access to QDOS (QL) disks. The file system requires a device
  73. driver that can read and write PC style sectors, such as mfm.device or
  74. messydisk.device.
  75.  
  76. The QL filesystem makes it possible to insert a QL disk into an Amiga
  77. drive and use it like any other disk. Files can be renamed, deleted or
  78. copied to and from QL disks, file dates can be set, disks can be relabled
  79. and so on...
  80.  
  81. Please read QLfilesystem.doc for more information.
  82.  
  83. --------------------------------------------------------------------------
  84.  
  85. ›1m›4mTHE SINCLAIR QL...›0m
  86.  
  87.       ,--------------------------------------------/|/|/|/|/|/|/|/|/|/|/|
  88.      / /_//_//_//_//_//_//_//_//_//_//_//_//_//_/ /            /|
  89.     / /_//__//_//_//_//_//_//_//_//_//_//_//_/ / /               / /
  90.    / /_//____//_//_//_//_//_//_//_//_//_//____/ /              / /
  91.   / /_//__//_//_//_________________//_//_//__/ /_____________________/ /
  92.  /_'__________________________________________/|__.======  .====== __|/
  93. |_____________________________________________:======================/
  94.   |________________________________________________________________|/
  95.  
  96. The Sinclair QL is a black slab-like computer based around Motorola's
  97. 68008 micro-processor. The QL was launched as the follow-up to the
  98. ZX Spectrum, aimed at the business market rather than the games market
  99. and was supplied with wordprocessor, spreadsheet, database and charting
  100. programs. It features a fully multi-tasking operating system (QDOS)
  101. and a very good built-in BASIC. The QL failed to achieve the mass-market
  102. appeal of its predecessor, but nevertheless attracted a large dedicated
  103. user base... which is still going strong.
  104.  
  105. --------------------------------------------------------------------------
  106.  
  107. ›1m›4mQUICK START›0m
  108.  
  109. ›1mINSTALLING THE EMULATOR›0m
  110.  
  111. 1. Create a directory on your destination volume for the Amiga-QDOS
  112.    binaries and documentation.
  113.  
  114. 2. Make an assignment to this directory as "QLBOOT:". Consider making
  115.    the same assignment in your start-up sequence.
  116.  
  117. 3. Copy the contents of the archive QDOS4amiga1.lha to QLBOOT:
  118.  
  119. 4. Move the contents of 'c','devs' and 'l' to the relevant system
  120.    directories and remove them from QLBOOT:.
  121.  
  122. ›1mMOUNTING THE QL FILESYSTEM›0m
  123.  
  124.    Under WB1.3 mountlst.ql should be placed in devs: and messydisk.device
  125.    should be available. Type 'MOUNT QL0: from devs:mountlst.ql' in a
  126.    Shell or add the command to your start-up device and REBOOT.
  127.  
  128.    Under WB2 with crossDOS, make sure that you have at least MOUNT 40.4
  129.    and SETPATCH 40.16 installed (distributed with AmiCDFS). Then install
  130.    as in WB3 below. If you do not have crossDOS, install as in WB1.3.
  131.  
  132.    Under WB3 copy the provided QL0 and QL1 definition files to
  133.    devs:dosdrivers. Check that your start-up sequence contains the
  134.    command 'MOUNT Devs/dosdrivers/~(#?.info)', then REBOOT.
  135.  
  136. ›1mRECREATING THE QDOS UTILITIES DISK›0m
  137.  
  138. 1. Mount the QLfilesystem.
  139.  
  140. 2. Copy QDOS4amiga3.lha to RAM:
  141.  
  142. 3. Double-click on the 'QLdisk.unLHA' script icon.
  143.    Insert a blank disk into DF0: at the appropriate moment... then wait.
  144.    Rename the resultant QDOS (QL) disk as 'QLutils:'
  145.  
  146.    Alternatively you may launch 'QLdisk.unlha' with QDOS4amiga3.lha
  147.    SHIFT-selected. This way the archive need not be copied to RAM:
  148.  
  149. ›1mSTARTING THE EMULATOR›0m
  150.  
  151. 1. Double-click on the 'Start_QDOS_UK' icon.
  152.  
  153. 2. At the F1/F2 prompt, insert QLutils: into DF0: and press F1.
  154.  
  155. --------------------------------------------------------------------------
  156.  
  157. ›1m›4mA QUICK TOUR OF THE QL›0m
  158.  
  159. When you first switch on a QL (or when you run the emulator) you are
  160. presented with a screen requiring you to press F1 or F2.
  161.  
  162. On an actual QL, pressing F2 initialises the 3 standard windows (BASICs
  163. #0, #1 and #2) such that they do not lie off the side of the screen when
  164. viewed on a PAL TV. Since the video on the Amiga is very much compressed
  165. relative to the QL, it is always best to choose the monitor setting - F1,
  166. on the emulator.
  167.  
  168. Upon pressing F1 or F2, the system will attempt to load and run a file
  169. called 'BOOT' from the disk inserted in the internal drive (FLP1_). With
  170. the QDOS QLutils: disk inserted, a BASIC BOOT program will run that loads
  171. a number of toolkits and installs a small RAM disk.
  172.  
  173. In any case, you will eventually be presented with a flashing cursor. This
  174. is your bog-standard home-computer flashing-cursor, waiting for a NEW
  175. program to be typed-in and RUN, or LOADed from floppy disk.
  176.  
  177.    For example, if you type in the following:
  178.  
  179.     ›3mNEW›0m
  180.     ›3m10 PRINT "Hello World!"›0m
  181.     ›3mRUN›0m
  182.  
  183.    ...the words 'Hello World!' are printed on screen.
  184.    If you add the following:
  185.  
  186.     ›3m20 GOTO 10›0m
  187.     ›3mRUN›0m
  188.  
  189.    ...then the same words will be repeatedly printed until you BREAK the
  190.    program with the keys <CTRL><SPACE>.
  191.  
  192.    You can save the program to the disk in the internal drive with the
  193.    command:
  194.  
  195.     ›3mSAVE FLP1_HELLOWORLD_bas›0m
  196.  
  197.    or, if there is no room on disk, you can FORMAT a new disk with the
  198.    command:
  199.  
  200.     ›3mFORMAT FLP1_WORKDISK›0m
  201.  
  202.    ...which formats the disk in the internal drive and gives it the name
  203.    'WORKDISK'. Remember there is no going back once a disk is formatted.
  204.  
  205.    To list the contents of the internal floppy drive type:
  206.  
  207.     ›3mDIR FLP1_›0m
  208.  
  209.    Loading a BASIC program from floppy disk is a simple matter:
  210.  
  211.     ›3mLOAD FLP1_PLAY_MUSIC_bas›0m
  212.  
  213.    You can then type:
  214.  
  215.     ›3mLIST›0m
  216.  
  217.    ...to see the BASIC listing, or:
  218.  
  219.     ›3mRUN›0m
  220.  
  221.    ...to execute the BASIC program.
  222.  
  223.    To execute a machine code task, use the EXEC_W keyword.
  224.    For example:
  225.  
  226.     ›3mEXEC_W FLP1_XCHANGE›0m
  227.  
  228.    ...will load and execute the stated program from the disk in the
  229.    internal drive. At the same time it will suspend BASIC ( _W = wait ).
  230.    To multi-task, use EXEC and press CTRL-C to task switch.
  231.  
  232. --------------------------------------------------------------------------
  233.  
  234. ›1m›4mCUSTOM STARTUP›0m
  235.  
  236. The default 'Start_QDOS' icons are configured to make best-use of your
  237. machines' RAM. For example on a QDOS will automatically be loaded into
  238. FAST RAM (if available) which is significantly faster than CHIP. In some
  239. cases however it may be that you want to force a particular configuration.
  240. For example Running QDOS from CHIP makes for a significantly more QL-like
  241. (and hence QL compatible) environment than running from FAST RAM.
  242.  
  243. The directories CUSTOM_UK and CUSTOM_DT contain customised start-up icons
  244. for different machine configurations.
  245.  
  246. ›3mQDOS_128K›0m
  247.  
  248. This icon gives you a memory configuration similar to the original
  249. unexpanded 128K QL.
  250.  
  251. ›3mCHIP_ONLY›0m
  252.  
  253. Run QDOS from CHIP memory, and ignore all memory expansions.
  254.  
  255. ›3mA500_RANGER_ONLY›0m
  256.  
  257. For A500s only. Ignore all other memory ranges and run QDOS from RANGER
  258. memory (address $C00000 onwards). A memory board fitted in the trap-door
  259. beneath the machine gives you this type of memory.
  260.  
  261. ›3mA500_EXPANSION_ONLY›0m
  262.  
  263. For A500s only. Ignore all other memory ranges and run QDOS from EXPANSION
  264. memory (address $200000 onwards). Some A500 peripherals that fit to the
  265. expansion port on the left of the machine give you this type of memory.
  266.  
  267. ›1mCREATING YOUR OWN CUSTOM START-UP ICON›0m
  268.  
  269. If none of the provided custom start-up icons reflect the set-up you
  270. require for your machine, it is possible to create your own. Click on any
  271. start-up icon and select copy (WB 2.0), or duplicate (WB 1.3). Click on
  272. the copy and rename it accordingly. Go to information from the workbench
  273. menus and change the tool type arguments as follows:
  274.  
  275. ›3m-m<lomem>-<himem>›0m
  276.  
  277. This sets the area of memory available to QDOS. <lomem> corresponds to the
  278. start of the system variable area and <himem> corresponds to RAMTOP.
  279.  
  280. ›3m-q<QDOS system ROM>›0m
  281.  
  282. This sets the name of the required QDOS system ROM. The default name is
  283. 'SYS_cde'
  284.  
  285. ›3m-p<patcher ROM>›0m
  286.  
  287. The patcher ROM does most of the work of getting the almost QL-like system
  288. ROM to work on the Amiga. The default name is 'MAIN_cde'
  289.  
  290. Following all other parameters is a list of ROMs to load.
  291.  
  292. --------------------------------------------------------------------------
  293.  
  294. ›1m›4mQDOS SYSTEM ROM›0m
  295.  
  296. The Amiga-QDOS system ROM is a JS equivalent, with all machine dependant
  297. routines patched out, a number of bug fixes, in-built exception handling
  298. and improved floating-point output routines.
  299.  
  300. It is possible to edit and print floating point numbers in up to 8 digits
  301. before going into E notation. QDOS normally enters E notation after 7
  302. digits, which can make it difficult if you're working with long integers
  303. or 32 bit addresses.
  304.  
  305. The exception handling routines allow programs to terminate gracefully
  306. should an instruction error, bus error or general exception occur.
  307.  
  308. The move sr,<address> instruction in user mode is emulated in software for
  309. machines with 680X0 processors. This instruction is not priviledged on the
  310. 68000/68008, and can be executed while in user mode. On later processors
  311. the instruction can only be executed in supervisor mode, and causes a
  312. PRIVILEDGE VIOLATION if executed in user mode.
  313.  
  314. Programs (user or supervisor) can be single-stepped by setting bit 15 of
  315. the status register. The current register contents are dumped to BASICs'
  316. #0 with each depression of the <SPACE> bar. Pressing <ENTER> exits trace
  317. mode. If #0 is not a CON channel, TRACE information is listed to the
  318. channel continuously without any need of user intervention.
  319.  
  320. External ROMs handle all machine dependant activities; such as display,
  321. keyboard and system time. The system recognises EPROMs at $1C000 and $C000
  322. only. The external ROM "MAIN_cde" hijacks the  BOOT procedure temporarily
  323. to look for ROMs situated in memory peculiar to the Amiga.
  324.  
  325. --------------------------------------------------------------------------
  326.  
  327. ›1m›4mO/S HOOKS›0m
  328.  
  329. The external ROM "MAIN_cde" does most of the work necessary to get the
  330. QDOS system ROM operating correctly by hooking itself into the relevant
  331. system vectors. L_QDOS currently puts "MAIN_cde" at $1C000, well within
  332. the first 512 K of CHIP RAM. Once loaded, "MAIN_cde" searches for
  333. expansion ROMs situated in areas of memory peculiar to the Amiga.
  334.  
  335. ›1mADDITIONAL BASIC EXTENSIONS›0m
  336.  
  337. There are seven keywords associated with "MAIN_cde"
  338.  
  339. ›3mRESET_TOP <oldtop>,<newtop>›0m
  340.  
  341. This keyword allows users to re-boot with a new RAMTOP.
  342.  
  343. Altering RAMTOP for Amiga-QDOS is not as simple as poking the system
  344. variable SV_RAMT and doing a re-boot, because AmigaQDOS ROMs (VDU, KBD
  345. etc) are ALWAYS loaded between RAMTOP and the end of physical memory.
  346. This means that moving RAMTOP requires you to move the ROMs also.
  347.  
  348. This keyword does all the dirty work for you and takes two parameters.
  349. <oldtop> is the old top of physical memory and <newtop> is the required
  350. top of physical memory.
  351.  
  352. For example on an A500, having booted Amiga-QDOS to make use of ranger RAM
  353. at $C00000-$C80000 and wishing to reboot leaving ranger RAM free and using
  354. the bottom 512K only, one could use the command:
  355.  
  356.   ›3mRESET_TOP hex("C80000"),hex("80000")›0m
  357.  
  358. or without TK2 or PDTK...
  359.  
  360.   ›3mRESET_TOP 13107200,524288›0m
  361.  
  362. afterwards, to re-use the memory - issue the command...
  363.  
  364.   ›3mRESET_TOP 524288,13107200›0m
  365.  
  366.  
  367. ›3mRESET_SV <newsv>›0m
  368.  
  369. This keyword allows users to reposition the system variables and re-boot.
  370.  
  371. For example to move the system variables so as to free the second screen
  372. area:
  373.  
  374.   ›3mRESET_SV 196608›0m
  375.  
  376. To move the system variables back to their default position:
  377.  
  378.   ›3mRESET_SV 163840›0m
  379.  
  380. ›3mRESET_EXTENTS <oldtop>,<newtop>,<newsv>›0m
  381.  
  382. This keyword allows users to simulataneously reposition the system
  383. variables and RAMTOP and then re-boot.
  384.  
  385. For example on an A4000 with 2MB CHIP and 2MB of expansion ($7E00000-
  386. $8000000), one could move the QDOS work area from CHIP to FAST RAM with
  387. the following command:
  388.  
  389.   ›3mRESET_EXTENTS HEX("200000"),HEX("8000000"),HEX("7E00000")›0m
  390.  
  391. QDOS tasks loaded into FAST RAM, run significantly faster. Running QDOS in
  392. FAST RAM relies on QDOS tasks being 32-bit clean.
  393.  
  394.   ›3mICACHE_ON›0m and ›3mICACHE_OFF›0m
  395.  
  396. These two commands allow the instruction cache to be turned on and off
  397. respectively. Amiga-QDOS boots with the instruction cache disabled.
  398. Turning the instruction cache on can speed up QDOS tasks considerably but
  399. relies on tasks to be well behaved (and not self modifying).
  400.  
  401.   ›3mDCACHE_ON›0m and ›3mDCACHE_OFF›0m
  402.  
  403. These two commands allow the data cache to be turned on and off
  404. respectively. Amiga-QDOS boots with the data cache disabled.
  405.  
  406.   ›3mCOPYBACK_ON›0m and ›3mCOPYBACK_OFF›0m
  407.  
  408. These two commands allow copyback mode to be turned on and off
  409. respectively. Amiga-QDOS boots with copyback mode disabled.
  410.  
  411. --------------------------------------------------------------------------
  412.  
  413. ›1m›4mCLOCK›0m
  414.  
  415. ›1mINITIALISATION›0m
  416.  
  417. The system fully supports the Amiga's battery backed-up clock, and will
  418. provide you with the correct date and time by way of the SuperBASIC
  419. commands DATE and DATE$ or the equivalent machine code TRAP instruction.
  420. If your Amiga does not include a clock, the system time will default to a
  421. value passed from AmigaDOS.
  422.  
  423. ›1mBUGS›0m
  424.  
  425. Doesn't find the battery backed-up clock in the A4000. The hardware has
  426. probably moved.
  427.  
  428. --------------------------------------------------------------------------
  429.  
  430. ›1m›4mVDU›0m
  431.  
  432. ›1mSECOND SCREEN›0m
  433.  
  434. The JS system ROM is altered to allow the system variables to be moved and
  435. for the second screen to be used. The MODE command is altered accordingly,
  436. to act more like the Minerva version.
  437.  
  438. If you are familiar with the way Minerva handles its screens then you
  439. should be able to understand the following.
  440.  
  441. The normal parameters for MODE still apply but if a second parameter is
  442. given, then both parameters are passed on to the MT.DMODE system trap in D1
  443. and D2 without alteration. D1 then takes on the following meaning:
  444.  
  445. bit(s)     function          (clear) | (set)
  446.  
  447.   0     other screen          visible | blank
  448.   1     default screen       visible | blank
  449.   2     other screen mode    mode4 | mode8
  450.   3     default screen mode    mode4 | mode8
  451.   4     show screen         scr0 | scr1
  452.   5     set default screen     scr0 | scr1
  453.   6     D1 usage         D1.W | D1.B (D1.W - msb all ones)
  454.  
  455.   7     opposite to bit 6 i.e bits 7/6 always = 0/1 or 1/0
  456.  
  457.  8-15     ignored if bit 6 set. Otherwise...
  458.  
  459.  8-13     associated with bits 0-5 (clear=set/clr, set=toggle)
  460.  
  461.   14     redraw other screen
  462.   15     redraw default screen
  463.  
  464. Thus to clear, set or toggle just ONE attribute of the display mode, the
  465. mode command takes the following form:
  466.  
  467.   ›3mMODE -128+n*(k-256),-1›0m
  468.  
  469. where:
  470.                       (k=0) |    (k=1)    | (k=257)
  471.  
  472.   (n=1) - other screen state:        visible |    blank    | toggle
  473.   (n=2) - default screen state:     visible |    blank    | toggle
  474.   (n=4) - other screen mode:       4 colour |  8 colour | toggle
  475.   (n=8) - default screen mode:       4 colour |  8 colour | toggle
  476.   (n=16) - show screen:            scr0 |     scr1    | toggle
  477.   (n=32) - set default screen:           scr0 |     scr1    | toggle
  478.  
  479. You can of course mix and match...
  480.  
  481.   ›3mMODE -128 + 2*(0-256) + 16*(1-256) + 32*(1-256),-1›0m
  482.  
  483.    ...performs the following:
  484.  
  485.    default screen = Scr1
  486.    default screen = visible
  487.    show Scr1
  488.  
  489.    Note that the default screen is set BEFORE any other operations are
  490.    performed.
  491.  
  492.  
  493. It is now possible to launch tasks in Amiga-QDOS that default to scr1 for
  494. output:
  495.  
  496.    ›3mRESET_SV 196608         ›0m   move system variables & reset
  497.  
  498.    ›3mMODE -128+32*(1-256),-1›0m   set default screen to scr1
  499.    ›3mEXEC flp1_XCHANGE      ›0m   launch application
  500.    ›3mMODE -128+32*(0-256),-1›0m   re-set default screen to scr0
  501.  
  502.  
  503. CTRL-C will switch screens if the enabled task requires it. You can also
  504. switch screens by pressing CTRL-TAB, or by poking the relevant hardware
  505. register.
  506.  
  507. ›1mHARDWARE REGISTERS›0m
  508.  
  509. Amiga-QDOS emulates the hardware register MC_STAT ($18063) to an extent.
  510. You can blank the screen by setting bit 1. You can switch screens by
  511. toggling bit 7. You can switch screen modes by toggling bit 3.
  512.  
  513. ›1mMOUSE POINTER›0m
  514.  
  515. The emulator can display, and return the screen co-ordinates of a simple
  516. mouse pointer (SPRITE). Although the mouse routines work correctly with
  517. QRAM pointer software, the co-ordinates of the sprite do not correspond
  518. with the co-ordinates of the QRAM pointer. When using QRAM, you should
  519. therefore not have the Amiga SPRITE pointer active.
  520.  
  521. ›1mADDITIONAL BASIC EXTENSIONS›0m
  522.  
  523. There are five keywords associated with the VDU driver.
  524.  
  525. ›3mBLIT_OFF›0m
  526.  
  527. The BLIT_OFF command turns all blitter activity off. This will prevent the
  528. VDU driver from refreshing the QL screen.
  529.  
  530. ›3mBLIT_ON›0m
  531.  
  532. The BLIT_ON command turns blitter activity back on allowing the VDU driver
  533. to properly refresh the QL screen.
  534.  
  535. ›3mSCR_PRIORITY <inc>, <bnd>›0m
  536.  
  537. This command sets the speed at the VDU driver refreshes the QL screen. It
  538. allows the blitter to move (inc/bnd)*(1/16) th of the screen every 1/50th
  539. of a second - for example:
  540.  
  541.   ›3mSCR_PRIORITY 4,1›0m
  542.  
  543. This will refresh (4/1)*(1/16) = 4/16 =1/4 of the screen every 1/50th of
  544. a second.
  545.  
  546.   ›3mSCR_PRIORITY 8,1›0m
  547.  
  548. This will refresh (8/1)*(1/16) = 8/16 =1/2 of the screen every 1/50th of
  549. a second.
  550.  
  551.   ›3mSCR_PRIORITY 16,1›0m
  552.  
  553. This will refresh (16/1)*(1/16) = 16/16 = whole of the screen every 1/50th
  554. of a second.
  555.  
  556. If you want maximum CPU speed and don't mind a slow display, you could
  557. try:
  558.  
  559.   ›3mSCR_PRIORITY 1,2›0m
  560.  
  561. Please experiment, but remember - refreshing more than half the screen in
  562. 1/50th of a second is just not physically possible. The default setting is
  563. SCR_PRIORITY 4,1.
  564.  
  565. ›3mPTR_ON›0m
  566.  
  567. This command displays a SPRITE on screen, relating to the position of the
  568. mouse pointer.
  569.  
  570. ›3mPTR_OFF›0m
  571.  
  572. This command hides the SPRITE relating to the position of the mouse
  573. pointer.
  574.  
  575. ›1mBUGS›0m
  576.  
  577. Due to a timing fault, for certain values of SCR_PRIORITY the first byte
  578. of every 32 nd line flickers spuriously. The VDU driver could time BLITTER
  579. access to screen memory more precisely, if the BLITTER commands were part
  580. of a general COPPER list. This would reduce screen flicker since memory
  581. access would sync with the vertical refresh automatically.
  582.  
  583. --------------------------------------------------------------------------
  584.  
  585. ›1m›4mACE›0m
  586.  
  587. This ROM takes over from the blitter providing QL screen emulation via the
  588. processor. On 68030 processors and above, screen emulation is both
  589. smoother and faster. On earlier processors it can be too processor
  590. intensive - so is not enabled on the F1/F2 boot screen but can be enabled
  591. with the ACE_ON command. The ACE routines (written by S N Goodwin) have an
  592. advantage over the blitter routines in that they fully support BOTH MODE 4
  593. and MODE 8.
  594.  
  595. ›1mWhy?›0m
  596.  
  597. The 32 bit CPU can convert the QL interleaved display into two Amiga bit
  598. planes faster than the Blitter in the AGA chip-set. If the CPU is used the
  599. Qdos kernel in chip RAM runs faster and the top display update rate is
  600. increased to a full flicker-free 50/60 Hertz. You might also like to try
  601. it on OCS/ECS systems with a processor accelerator, but the 16 bit chip
  602. RAM will limit the cpu's advantage. If you only have a 68000 you're almost
  603. certainly better off using the blitter.
  604.  
  605. ›1mHow?›0m
  606.  
  607. The ACCELERATOR is a normal Qdos server in the polled list, performed 50
  608. times per second while the machine is in User mode (and skipped in
  609. Supervisor mode). It does the same job as the blitter interrupt server, so
  610. that is turned off - to free extra bus bandwidth - once ACE is up and
  611. running.
  612.  
  613. ›1mReally, How?›0m
  614.  
  615. The method relies on the caches for code and data and is optimised for the
  616. 68040. We copy alternate bytes from Qdos screen memory to alternate
  617. bit-planes. The method used in ACE_CODE reads eight bytes at a time then
  618. swaps registers around to generate two or three long words for the
  619. bitplanes. This is much faster than the use of MOVE.B or MOVEP for byte
  620. access.
  621.  
  622. This program detects the data cache on the 68030/40/60 and temporarily
  623. turns it off for top speed when reading and writing chip memory.
  624.  
  625. ›1mACE v BLITTER - raw CPU power versus custom chips›0m
  626.  
  627. TEST RESULTS for ACE runing on a CBM A4000/040 with Chip RAM only or with
  628. copyback on or off in Fast RAM. These tests used ACE version 3.15, MODE 4
  629. and the DIY Toolkit timers to time one 10,000 iteration FOR loop.
  630.  
  631. ACE_PRIORITY  CHIP QDOS      FAST QDOS          COPYBACK
  632.  
  633.    16,1     17.18        4.66        3.46
  634.    16,2      5.04        1.50        1.12
  635.    16,3      4.08        1.22        0.90
  636.    16,4      3.72        1.10        0.84
  637.    16,5      3.52        1.06        0.80
  638.    16,6      3.42        1.02        0.78
  639.    16,7      3.34        1.00        0.76
  640.    16,8      3.28        0.98        0.74
  641.  
  642. At ACE_PRIORITY 16,N the 68040 spends about three quarters of 1 in N
  643. fields servicing the display. Chip RAM access time predominates. Note that
  644. Copyback speeds up SuperBASIC by over 30 per cent compared with Write
  645. Through cacheing, and the emulator is four or fives times faster if you
  646. run it from fast RAM even though the 'QL ROM' is still in Chip!
  647.  
  648. In a system with 32 bit fast memory the speed of tasks and extensions is
  649. much increased, but the screens, Qdos and SuperBASIC interpreter routines
  650. remain in chip memory, for compatability reasons, and that is relatively
  651. slow. CPU caches can soak up some but not all of the difference.
  652.  
  653. Both blitter and CPU display updates are slowed if chip memory is already
  654. busy, e.g. because of Qdos ROM reads or screen writes. The difference is
  655. that the blitter contention is asynchronous, while the CPU is the only
  656. thing (other than DMA) accessing chip memory during ACE screen updates.
  657.  
  658. ›1mADDITIONAL BASIC EXTENSIONS›0m
  659.  
  660. There are five keywords associated with ACE.
  661.  
  662. ›3mACE_OFF›0m
  663.  
  664. The ACE_OFF command turns off ACE screen emulation and re-enables blitter
  665. screen emulation.
  666.  
  667. ›3mACE_ON›0m
  668.  
  669. The ACE_ON command disables blitter screen emulation and enables ACEs'
  670. processor dependent screen emulation.
  671.  
  672. ›3mACE_PRIORITY <inc>, <bnd>›0m
  673.  
  674. This procedure determines the number of 2K chunks and number of fields per
  675. update, 1..16 and 1..255 respectively. The default 8,2 is the equivalent
  676. of SCR_PRIORITY 4,1.
  677.  
  678. The parameters correspond to those of SCR_PRIORITY.
  679.  
  680. The first parameter controls the smoothness of the update, in units of
  681. 1/16 of a screen. If you have a fast processor (68040 or better) you can
  682. use 16 and have the entire screen updated in one go - twice as fast as the
  683. quickest blitter setting, 8,1 - but this is too much for a 25 MHz 68030,
  684. which struggles to complete a field in 20 milliseconds. Lower values mean
  685. the processor tries to do less in a single field, which means you may see
  686. a line across the screen during rapid screen updates, at the point where
  687. one update stops and the next takes over.
  688.  
  689. Qdos does not allow an interrupt server to take more than 20 mS to run -
  690. the time up to the next interrupt - so you should not experiment with high
  691. values for ACE_PRIORITY unless you have a fast processor. Ignore this and
  692. Qdos may lock up!
  693.  
  694. The second parameter controls the number of fields that are displayed
  695. between one full (or partial) update and the next. A value of 1 means that
  696. ACE runs 50 times per second (every 1 field) which imposes a heavy CPU
  697. load but gives the most rapid screen response. A value of 2 means that ACE
  698. runs every other frame; 3 means ACE runs once every three frames, giving
  699. more time for programs at the price of only about 17 full or paritial
  700. updates per second. The second value can be up to 255, which leaves 99.6
  701. per cent or more of the CPU time for 'real' programs but gives a very slow
  702. screen update - about one update every 5.1 seconds! If you have fast
  703. memory you're probably better off using the blitter than ACE in this case.
  704.  
  705. ACE_ON and ACE_OFF link and unlink the interrupt handler. ACE_PRIORITY
  706. reports 'not found' if you try to use it when ACE is not linked in.
  707.  
  708. ›3mACE_RATE%›0m
  709.  
  710. This function returns the number of fields that are output to the screen
  711. between one ACE update and the next.
  712.  
  713. ›3mACE_SIZE%›0m
  714.  
  715. This function returns the number of 2K sections of the Qdos screen to be
  716. copied to Amiga bitplanes at each update.
  717.  
  718. Together these functions ACE_RATE% and ACE_SIZE% let you read the current
  719. ACE_PRIORITY settings.
  720.  
  721. --------------------------------------------------------------------------
  722.  
  723. ›1m›4mKEYBOARD›0m
  724.  
  725. ›1mQL RESET›0m
  726.  
  727. You can perform a QL cold-reset by holding down CTRL-SHIFT-ALT-TAB. It is
  728. therefore possible to load an expansion ROM into memory at $C000, and have
  729. the emulator install it upon the next cold-reset.
  730.  
  731. ›1mSECOND SCREEN›0m
  732.  
  733. It is possible to flick between the second screen and the standard screen
  734. by pressing CTRL-TAB.
  735.  
  736. ›1mINTERRUPTS›0m
  737.  
  738. You can simulate a level 7, 5 or 2 interrupt by pressing CTRL-ALT and the
  739. relevant number (i.e. 7,5 or 2). The level 7 interrupt (CTRL-ALT-7)
  740. performs the equivalent of a non-maskable interrupt (NMI) and can be used
  741. to resume the machine from fatal system hang-up. It Restores BASIC'S A6
  742. and A7, sets its Priority to 32, releases the Job and continues execution
  743. at the Warm-start address.
  744.  
  745. ›1mSPECIAL KEYS›0m
  746.  
  747. Keys F6-F10 produce the same codes as SHIFT F1-F5
  748.  
  749. ›1mNEW TRAP #1 CALL›0m
  750.  
  751. Amiga-QDOS includes a new foreign Keyboard Manager TRAP #1, D0=$27,
  752. D1=Address of table, that allows for a customisable keyboard table (the
  753. default is German).
  754.  
  755. ›1mADDITIONAL BASIC EXTENSIONS›0m
  756.  
  757. There are six keywords associated with the keyboard.
  758.  
  759. ›3mKEYDT›0m
  760.  
  761. This command sets a German keymap (the default)
  762.  
  763. ›3mKEYUK›0m
  764.  
  765. This command sets a UK keymap (only available if you load KEYUK_cde).
  766.  
  767. ›3mPTR_LIMITS [<Xleft>,<Ytop>,<Xright>,<Ybottom>]›0m
  768.  
  769. This command sets limiting bounds for the position of the mouse pointer.
  770. The default limits are 0,0,256,256
  771.  
  772. ›3mPTR_INC [<Xdist>,<Ydist>]›0m
  773.  
  774. This command sets how far the mouse must be moved before the KEYROW
  775. function registers cursor movement. By default Xdist is 4 and Ydist is 8.
  776.  
  777. ›3mPTR_X%›0m
  778.  
  779. This function returns the X coordinate of the mouse pointer. Mouse
  780. coordinates are measured in low resolution pixels (a limit imposed on
  781. Amiga sprites).
  782.  
  783. ›3mPTR_Y%›0m
  784.  
  785. This function returns the Y coordinate of the mouse pointer. Mouse
  786. coordinates are measured in low resolution pixels (a limit imposed on
  787. Amiga sprites).
  788.  
  789. --------------------------------------------------------------------------
  790.  
  791. ›1m›4mSOUND›0m
  792.  
  793. QDOS sounds are supported in full, via the SuperBASIC BEEP command and its
  794. equivalent machine code MT.IPCOM command (Trap#1 with d0=$11).
  795.  
  796. --------------------------------------------------------------------------
  797.  
  798. ›1m›4mSER DEVICE›0m
  799.  
  800. The serial device is pretty reliable - even at high speeds!
  801.  
  802. ›1mSER DESCRIPTION›0m
  803.  
  804. Following is a complete description of the SER device syntax, which
  805. includes a number of useful additions.
  806.  
  807. OEMS - ODD, EVEN, MARK or SPACE parity (default = none)
  808.  
  809. IH   - IGNORE or use HANDSHAKE (default = ignore)
  810.  
  811. RNCL - RAW, CR/LF, CR or LF end of line protocol (default = raw)
  812.  
  813. ZF   - CTRL-Z or FORMFEED end of file (CLOSE) protocol
  814.        (default= none)
  815.  
  816. For example the command OPEN#4;"SER1INF" opens the serial channel to
  817. ignore H/W handshakes, translate end of line characters into CR/LF and
  818. send a form-feed at the next CLOSE#4.
  819.  
  820. On input, CR, LF and the CR/LF couple are translated into a single LF
  821. character - unless RAW is selected as the end of line protocol.
  822.  
  823. In future releases 'IH' may be extended to 'IHX', allowing for Xon/Xoff
  824. (software) handshake.
  825.  
  826. --------------------------------------------------------------------------
  827.  
  828. ›1m›4mPAR DEVICE›0m
  829.  
  830. The parallel device is buffered and interrupt driven - so within the
  831. constraints of printer speed, output via the parallel port is very fast.
  832.  
  833. ›1mPAR DESCRIPTION›0m
  834.  
  835. Following is a complete description of the PAR device syntax which
  836. includes useful end of line and end of file protocols.
  837.  
  838. RNCL - RAW, CR/LF, CR or LF end of line protocol (default = raw)
  839.  
  840. F    - use FORMFEED as end of file (CLOSE) protocol
  841.        (default = none)
  842.  
  843. For example the command OPEN#4;"PARNF" opens a channel to the parallel
  844. port, translating end of line characters into CR/LF, and sending a form-
  845. feed at the next CLOSE#4.
  846.  
  847. In future releases 'IO' may be added to the syntax, allowing for input
  848. and output to the parallel device.
  849.  
  850. --------------------------------------------------------------------------
  851.  
  852. ›1m›4mFLP DEVICE›0m
  853.  
  854. The Format of a QDOS filename on the floppydisk is FLPn_name_ext, where
  855. FLPn_ is the device name. FLP1_ represents the internal drive, FLP2_ the
  856. first external drive and so on. Filenames consist of up to 32 characters.
  857. The *D2D random access convention is emulated in full, so CP/M and MS-DOS
  858. emulators should work without problems.
  859.  
  860. ›1mADDITIONAL BASIC EXTENSIONS›0m
  861.  
  862. The floppy driver has a number of associated keywords. The commands MOUNT
  863. and DSKCNG are necessary for older drives that do not respond correctly to
  864. disk changes, or do not supply a disk ID. The command DISKCOPY is included
  865. because it is incredibly useful. FLP_USE, PROG_USE, DATA_USE etc are
  866. implemented for compatibility with QL disk interfaces that invariably
  867. include such commands.
  868.  
  869. ›3mMOUNT <drive>›0m
  870.  
  871. Use MOUNT 1 for FLP2_, MOUNT 2 for FLP3_, or MOUNT 3 for FLP4_. The
  872. emulator tries to read a disk ID from every drive, and only allocates
  873. drive buffers for those drives that respond correctly. Unfortunately some
  874. older drives do not have this feature, and on such drives you will need
  875. to use the MOUNT command. Issue this command once only, immediately after
  876. a boot, and only if the drive is not recognised.
  877.  
  878. ›3mDSKCNG <drive>›0m
  879.  
  880. Use DSKCNG 1 for FLP2_, DSKCNG 2 for FLP3_, or DSKCNG 3 for FLP4_. The
  881. Amiga hardware automatically recognises when you insert a new disk into a
  882. drive. Unfortunately some older drives do not have this feature, and on
  883. such drives you will need to use the DSKCNG command each time you insert
  884. a disk afresh.
  885.  
  886. ›3mDISKCOPY [#<channel>]›0m
  887.  
  888. DISKCOPY duplicates the disk in Flp1_ onto the disk in Flp2_. You require
  889. two drives in order to use this command. DISKCOPY will ask you to insert
  890. the source and destination disks before proceeding. Messages are printed
  891. on the specified channel, or to #0 if no channel number is given. It is
  892. possible to BREAK from this command with CTRL-SPACE.
  893.  
  894. ›3mFLP_USE <name>›0m
  895.  
  896. Sets the name of the floppy disk system. By default the name of the floppy
  897. disk system is 'FLP', but this can be changed for example to 'MDV' or any
  898. other three-character string.
  899.  
  900. ›3mPROG_USE <name>›0m
  901.  
  902. Sets the default device/directory for programs and executables.
  903.  
  904. ›3mDATA_USE <name>›0m
  905.  
  906. Sets the default directory data files.
  907.  
  908. ›3mSPL_USE <name>›0m
  909.  
  910. Sets the name of the default copy/spool device/directory.
  911.  
  912. ›3mDEST_USE <name>›0m
  913.  
  914. As SPL_USE except that this command appends an underline the the <name> if
  915. none is present.
  916.  
  917. ›3mPROGD$›0m
  918.  
  919. Returns the name of the default program device/directory.
  920.  
  921. ›3mDATAD$›0m
  922.  
  923. Returns the name of the default device/directory for data files.
  924.  
  925. ›3mDESTD$›0m
  926.  
  927. Returns the name of the default copy/spool device/directory.
  928.  
  929. --------------------------------------------------------------------------
  930.  
  931. ›1m›4mJAN DEVICE›0m
  932.  
  933. The JANus device driver gives you access to the Harddisk from the IBM
  934. Sidecar within QDOS.
  935.  
  936. The JANus device driver expects the program QLDISK.COM running on the IBM
  937. side. This program is also included in source format (QLDISK.PAS) and must
  938. be compiled with TURBO pascal 3.0! Any filename has the form: JAN1_name_ext
  939. where 1 [,2,3,4,5,6,7,8] has no function. The extension is converted from
  940. _ext to .ext automatically. Names consist of capital letters only and must
  941. not be longer than 8 characters.
  942.  
  943. Subdirectories and file conventions of MS-DOS are used. If you try to read
  944. MS-DOS files from QDOS, you will experience some trouble, since QDOS needs
  945. a 64 byte fileheader, which is of course not present in MS-DOS files. The
  946. other way around, you will find 64 additional bytes at the top of any QDOS
  947. file, when you try to read QDOS files from the IBM side.
  948.  
  949. ›1mADDITIONAL BASIC EXTENSIONS›0m
  950.  
  951. ›3mCHDIR <"path">›0m
  952.  
  953. changes the  subdirectory path (CD on IBM)
  954.  
  955. ›3mMKDIR <"name">›0m
  956.  
  957. make subdirectory (MKDIR on IBM)
  958.  
  959. ›3mRMDIR <"path">›0m
  960.  
  961. remove subdirectory (RMDIR on IBM)
  962.  
  963. ›3mSHODIR›0m
  964.  
  965. display the actual path at channel #1
  966.  
  967. ›3mJAN_USE <"abc">›0m
  968.  
  969. set up a new device name for JAN (eg MDV)
  970.  
  971. At present, the emulator cannot access data on hard-disks, except via the
  972. JAN device on JAN drives on a machine with a Bridgeboard installed.
  973.  
  974. --------------------------------------------------------------------------
  975.  
  976. ›1m›4mHARDWARE DIFFERENCES›0m
  977.  
  978. ›1mTAS INSTRUCTION PROBLEMS:›0m
  979.  
  980. This emulator is a good QL-clone, however there are hardware differences
  981. that may cause initial problems:
  982.  
  983. The Amiga hardware does not allow the CPU two contiguous bus cycles. This
  984. means that any READ-MODIFY-WRITE cycle fails, and as a result the machine-
  985. code instruction 'TAS' does not function correctly on the Amiga.
  986.  
  987. It must be understood that a fair number of QL programs have been compiled
  988. from BASIC and that both the leading QL BASIC compilers 'TURBO' & 'QLIB',
  989. contain TAS instructions - as do all TURBO'd and QLIB'd tasks. It follows
  990. that without modification a large number of QL programs will fail.
  991.  
  992. To remedy the problem, Line-A (instruction: %1010111XXXXXXXXX) is
  993. programmed to emulate TAS, and a utility is included on the 'QLutils' disk
  994. that makes QL tasks Amiga friendly by replacing all TAS instructions with
  995. Line-A.
  996.  
  997. ›1mNO_TAS›0m
  998.  
  999. This program removes TAS instructions in recognised TURBO'ed and QLIB'ed
  1000. tasks, substituting equivalent code. If the code is not thus recognised,
  1001. TAS will be replaced by a Line-A instruction (which is programmed to
  1002. emulate TAS but is not QL-compatible) or by extending the code.
  1003.  
  1004. ›3mFIXES FOR QLIBERATOR›0m
  1005.  
  1006. The Q_Liberator runtime libraries contain a single TAS instruction...
  1007. TAS $8F(A6) in v3.22 and TAS $8F(A4) in the library used with the budget
  1008. compiler. As a result any program compiled to include libraries will also
  1009. contain this instruction.
  1010.  
  1011. NO_TAS automatically recognises QLIB'ed tasks, removes the TAS instruction
  1012. and substitutes equivalent code. The result is a task that is compatible
  1013. with a 'real' QL and runs within Amiga-QDOS without problems.
  1014.  
  1015. ›3mFIXES FOR TURBO COMPILER›0m
  1016.  
  1017. The TURBO compiler package contains a single TAS $8F(A6) in PARSER_task
  1018. and two TAS instructions ( TAS $8F(a6) and TAS $17(a2) ) in CODEGEN_task.
  1019. Any program compiled with TURBO may also contain these instructions.
  1020.  
  1021. NO_TAS automatically recognises TURBO'ed tasks, removes the TAS
  1022. instructions and substitutes equivalent code. The result is a task that is
  1023. compatible with a 'real' QL and runs within Amiga-QDOS without problems.
  1024.  
  1025. ›3mFIXES FOR NON QLIB/TURBO CODE›0m
  1026.  
  1027. If the code is not recognisable as having been produced by QLIB or TURBO,
  1028. NO_TAS will check the code and process it dependent on its size;
  1029.  
  1030. SMALL CODE FIX
  1031.  
  1032.   If the code is less than 32K in size, NO_TAS will attempt to replace all
  1033.   TAS instructions by a branch to an equivalent subroutine. The subroutine
  1034.   is tagged onto the end of the code, so any file processed in such a way
  1035.   will 'grow'. The result is a task that is compatible with both
  1036.   Amiga-QDOS and a 'real' QL, but which might confuse tasks that make
  1037.   assumptions upon their own length.
  1038.  
  1039. LARGE CODE FIX
  1040.  
  1041.   If the code is bigger than 32K in size, TAS instructions will be
  1042.   replaced by a Line-A instruction which is programmed to emulate TAS. The
  1043.   Line-A code is INCOMPATIBLE with a 'real' QL. Code modified in this way
  1044.   will cause a total system crash if run on a real QL.
  1045.  
  1046. With both the small and large code fixes, a disassembly is shown and you
  1047. will be asked whether or not to replace the code. Note however that the
  1048. program may display TAS instructions where none are present (i.e. within
  1049. program DATA). A good rule-of-thumb is that true CODE is usually
  1050. surrounded by other machine code instructions, whereas DATA is liberally
  1051. sprinkled with DC.Ws
  1052.  
  1053. ›1mRESTORE_TAS›0m
  1054.  
  1055. Use this program to 'put-back' TAS instructions into programs that have
  1056. been altered by NO_TAS.
  1057.  
  1058. --------------------------------------------------------------------------
  1059.  
  1060. ›1m›4mSOURCE FILES›0m
  1061.  
  1062. The complete assembly source for the emulator is included with this
  1063. release.
  1064.  
  1065. ›1mEDITING THE SOURCE›0m
  1066.  
  1067. If you need to alter a source file in any way, use an editor that
  1068. preserves TABS. If you use an editor that expands tabs to spaces during a
  1069. SAVE, you will find that file will increase in size dramatically - to a
  1070. point where it may exceed available disk space.
  1071.  
  1072. If you are looking for a reasonably small, WB1.3 compatible, simple,
  1073. TAB preserving PD text editor - try JED.
  1074.  
  1075. In order to view the source files correctly, tabs should be set to NINE
  1076. characters.
  1077.  
  1078. ›1mRE-ASSEMBLING THE SOURCE›0m
  1079.  
  1080. Original sources were assembled in QDOS with GST's Macro assembler.
  1081. Current sources are assembled on the Amiga with A68k.
  1082.  
  1083. Expansion ROMs handle all Amiga specific functions, freeing the QDOS ROM
  1084. of any hardware dependent source. There are separate ROMs for VDU, Clock,
  1085. Keyboard, PAR device, SER device and FLP device. This makes de-bugging a
  1086. lot easier.
  1087.  
  1088. Each ROM has its own MAKE file. CD into a make directory and type the
  1089. name of the relevent script file to rebuild a particular ROM.
  1090.  
  1091. ›1mCOMMENTS IN THE SOURCE›0m
  1092.  
  1093. I have commented the QDOS ROM source wherever it differs from either the
  1094. original JS source, or from Rainer Kowallik's version. Comments begin with
  1095. the characters ";*/" so are easily found. There are a number of keys
  1096. following these characters, that identify the kind of modification. These
  1097. are:
  1098.  
  1099. ›3m;*/note›0m
  1100.  
  1101. This indicates a point that you should be aware of.
  1102.  
  1103. ›3m;*/mend›0m
  1104.  
  1105. This indicates a bug fix.
  1106.  
  1107. ›3m;*/modify›0m
  1108.  
  1109. This indicates that the code remains functionally equivalent to the JS
  1110. version, but is changed in some way.
  1111.  
  1112. ›3m;*/overlay›0m
  1113.  
  1114. This indicates that the code differs significantly from the JS version.
  1115.  
  1116. ›3m;*/insert›0m
  1117.  
  1118. This indicates a new piece of code.
  1119.  
  1120. ›1mKEY MODIFIERS›0m
  1121.  
  1122. key modifiers precede a key, altering its meaning in some way.
  1123.  
  1124. ›3mundo›0m
  1125.  
  1126. This indicates that previous amendments were discarded in favour of the
  1127. original JS source. For example:
  1128.  
  1129. ›3m;*/undomend›0m
  1130.  
  1131. This means that an apparent bug, fixed in a previous release, was not a
  1132. bug after all.
  1133.  
  1134. ›3mbegin and end›0m
  1135.  
  1136. These key modifiers bracket an amended section of code. e.g:
  1137.  
  1138. ›3m;*/begininsert and ;*/endinsert›0m
  1139.  
  1140. These indicate the start and end of a section of code that is inserted
  1141. anew.
  1142.  
  1143. --------------------------------------------------------------------------
  1144.  
  1145. ›1m›4mOTHER UTILITIES ON THE QL SUPPORT DISK›0m
  1146.  
  1147. ›1mPLAY_SCALE_bas›0m and ›1mPLAY_MUSIC_bas›0m
  1148.  
  1149. Two programs to demonstrate the capabilities of the SuperBASIC BEEP
  1150. command.
  1151.  
  1152. ›1mSER_TRANSFER_bas›0m
  1153.  
  1154. This is an old program (formerly QLTRA_bas) that allows you to transfer
  1155. files between two QDOS machines via a cable and the serial device. The
  1156. program transfers a complete volume.
  1157.  
  1158. ›1mPOKE_DIGITS_bas›0m
  1159.  
  1160. This utility allows you to alter QDOS so as to handle 5, 6, 7 or 8 digit
  1161. numbers before entering E notation. The emulator uses eight digit numbers
  1162. as opposed to the standard seven digits. If this proves to be a problem,
  1163. use POKE_DIGITS_bas to change back to seven digits.
  1164.  
  1165. ›1mBOOT›0m
  1166.  
  1167. The boot program on the 'QLutils' disk loads a number of toolkits into
  1168. memory, and sets up a small RAM disk.
  1169.  
  1170. ›1mPD RAM-disk›0m
  1171.  
  1172. The QL support disk now contains a Public domain RAM disk. It is
  1173. relatively slow but functions reasonably well. If anyone knows who wrote
  1174. it, please let me know so that I can credit the author in these docs.
  1175.  
  1176. ›1mPDTK_rext›0m
  1177.  
  1178. This Freeware BASIC toolkit includes a small number of SuperBASIC
  1179. commands. Some of these are required by the programs SYS_REF, NO_TAS
  1180. etc., others are included because I find them incredibly useful. See the
  1181. documentation on the QLutils disk.
  1182.  
  1183. ›1mD68K_rext›0m
  1184.  
  1185. This disassembly toolkit includes a small number of SuperBASIC commands to
  1186. help you to disassemble files and memory. The toolkit is required by
  1187. NO_TAS. See the documentation on the QLutils disk.
  1188.  
  1189. ›1mSYS_REF_task›0m
  1190.  
  1191. SYS_REF is a utility that patches tasks & M/C which rely on the system
  1192. variables being at $28000, to work when the sys vars are elsewhere (i.e.
  1193. with the second screen enabled).
  1194.  
  1195. It has been tested on several programs (even TURBO) under Minerva and
  1196. Amiga-QDOS (with 2nd screen enabled), and WORKS!
  1197.  
  1198. SYS_REF also makes TURBO & TURBO-compiled programs 32-bit clean.
  1199.  
  1200. --------------------------------------------------------------------------
  1201.  
  1202. ›1mINTRODUCTION AND MOTIVATION›0m
  1203.  
  1204. I bought my first QL in 1984 in Berlin, and since this time the QL has
  1205. proved to be a very handy tool for all kinds of computer work.
  1206. Unfortunately the QL was not very popular. It has an active user group,
  1207. but little software or hardware. With the arrival of the ATARI 520 ST and
  1208. the increasing popularity of the IBM clone the QL became less and less
  1209. interesting to new users, until eventually even Sinclair himself lost
  1210. interest.
  1211.  
  1212. So far so bad, but after checking the possible alternatives, there was no
  1213. computer that was any better than the QL. Then came the idea of building a
  1214. new computer with QDOS, a 68000 CPU and a reasonable keyboard -- but why
  1215. build a new computer, when you can buy one?
  1216.  
  1217. For this purpose the AMIGA seemed best suited. It is highly expandable and
  1218. has excellent hardware. Furthermore, it seemed easier to emulate a QL
  1219. screen on the AMIGA, than on the ATARI.
  1220.  
  1221. The emulator is based around a JS-ROM disassembly, expanded in some
  1222. features, and initially tested on a real QL. The BLITTER performs QL
  1223. screen emulation, which makes it a very fast process costing nearly no CPU
  1224. time. Keyboard emulation includes Ctrl-Alt-7 , KEYROW and IPC calls.
  1225. Additionally upon a system error, a default trap handler will tell you
  1226. what happened at what address, and return you to SuperBASIC.
  1227.  
  1228. Apart from the MicroDriVes and NETwork, the emulator implements all the
  1229. standard QL devices (CON_, SCR_, PIPE_, SER1, PAR, FLPn_).
  1230.  
  1231. RAINER KOWALLIK
  1232.  
  1233. --------------------------------------------------------------------------
  1234.  
  1235. ›1m›4mADDENDUM›0m
  1236.  
  1237. ›1mCONTINUING DEVELOPMENT›0m
  1238.  
  1239. I am under the impression that due to recent commitments, Rainer has very
  1240. little time to make any further improvements to the emulator. Therefore,
  1241. in Rainers absence, I have taken on the responsibility for the emulators'
  1242. continuing development.
  1243.  
  1244. MARK J SWIFT
  1245.  
  1246. --------------------------------------------------------------------------
  1247.  
  1248. ›1m›4mSOFTWARE OVERVIEW›0m
  1249.  
  1250. This section contains a list of QDOS programs with specific implementation
  1251. notes for Amiga-QDOS. The list was part of the original emulator
  1252. documentation, so many of the problems mentioned may not now be relevant.
  1253.  
  1254. Most of the descriptions do not mention which version of the emulator the
  1255. software was tested on, or who did the testing. I have included a version
  1256. number and my initials wherever I have been able to confirm the validity
  1257. of a particular statement. If you would like to add you're own comments on
  1258. a particular program, please let me know.
  1259.  
  1260. MARK J SWIFT
  1261.  
  1262. --------------------------------------------------------------------------
  1263.  
  1264. ›1m›4mSOFTWARE OVERVIEW - TOOLKITS›0m
  1265.  
  1266. ›1mT. Tebby Toolkit 2 [Qjump]›0m
  1267.  
  1268. This Toolkit is almost an essential for Working with QDOS. It provides you
  1269. with JOB handling, parameter passing facilities, a full screen BASIC
  1270. editor, a command line stack, wild card file functions, default devices,
  1271. definable keys and many other useful commands. It's a shame there's no
  1272. public domain equivalent.
  1273.  
  1274.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1275.  
  1276.   Use NO_TAS_task to remove all TAS instructions.
  1277.  
  1278.  
  1279. ›1mT. Tebby pointer interface and Window manager [Qjump]›0m
  1280.  
  1281. For those who miss the Workbench and mouse handling, this is the QDOS
  1282. equivalent. There are more and more programs appearing on the QL that use
  1283. this interface as a front-end. It takes some getting used to.
  1284.  
  1285.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1286.  
  1287.   At the very least PTR_GEN must have TAS instructions removed. Other
  1288.   files may also need to be fixed. Be very careful however not to
  1289.   TAS-replace DATA.
  1290.  
  1291.  
  1292. ›1mT. Tebby Ramdisk [Qjump]›0m
  1293.  
  1294. Bundled with the pointer environment and the QRAM 'workbench' equivalent.
  1295.  
  1296.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1297.  
  1298.   The original emulator documentation mentions this 'behaving strangely'
  1299.   when you try to FORMAT a fixed RAM disk. I've not been able to pin-point
  1300.   any problems whatsoever. Contains TAS instructions - use 'NO_TAS' to
  1301.   remove them.
  1302.  
  1303.  
  1304. ›1mGiga-BASIC [ABC elektronik]›0m
  1305.  
  1306. A lot of commands! - some useful, some superfluous. mostly concerned with
  1307. mouse and menu handling.
  1308.  
  1309.   ›3mIMPLEMENTATION NOTES›0m
  1310.  
  1311.   Problems with compiler?
  1312.  
  1313. --------------------------------------------------------------------------
  1314.  
  1315. ›1m›4mSOFTWARE OVERVIEW - LANGUAGES AND ASSEMBLERS›0m
  1316.  
  1317. ›1mQLiberator (BASIC compiler) [Liberation Software]›0m
  1318.  
  1319. This compiler has almost the same degree of usefulness as the T. Tebby
  1320. toolkit. The compiled programs are not among the fastest, but the compiler
  1321. can cope with nearly every program. It can include M-Code toolkits in the
  1322. object file, and produces small code when used in conjunction with the
  1323. resident runtime library. Compiled programs can be linked as resident
  1324. toolkits to the interpreter, and procedures can made accessible to BASIC.
  1325.  
  1326.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1327.  
  1328.   Use 'NO_TAS' to remove TAS instructions. Also use 'NO_TAS' on any
  1329.   runtime libraries and any programs compiled prior to 'fixing'. Programs
  1330.   compiled with a 'fixed' version of QLIBerator will not contain TAS
  1331.   instructions and will work perfectly well on a QL or within Amiga-QDOS.
  1332.  
  1333.  
  1334. ›1mTurbo (BASIC compiler) [Digital Precision]›0m
  1335.  
  1336. Much faster than the Qliberator, but can not pass parameters back to the
  1337. caller, and has many small quirks. Supercharge was a precursor to Turbo
  1338. with a very remarkable copy protection 'device'. Turbo itself is not
  1339. protected anymore.
  1340.  
  1341.   ›3mIMPLEMENTATION NOTES - 3.23 MJS›0m
  1342.  
  1343.   Use the program NO_TAS_task to remove TAS instructions in PARSER_task
  1344.   and CODEGEN_task. Once 'fixed' TURBO and TURBO compiled tasks will run
  1345.   on Amiga-QDOS without problems.
  1346.  
  1347.   If you wish to make use of the second screen under Amiga-QDOS (or
  1348.   Minerva) you must use SYS_REF to remove all references to the system
  1349.   variables (which are moved with 2nd screen enabled)
  1350.  
  1351.   When SYS_REFing CODEGEN_task of the TURBO compiler, patch all references
  1352.   EXCEPT the two that refer to $28010. These are not part of the CODEGEN
  1353.   code, but are included in all TURBO compiled programs.
  1354.  
  1355.   When SYS_REFing PARSER_task, or any other TURBO program replace ALL
  1356.   references.
  1357.  
  1358.   The SYS_REF'ed version of TURBO works under Minerva and Amiga-QDOS with
  1359.   the second screen enabled. It produces code identical to the unpatched
  1360.   version, so remember to patch all TURBO-compiled tasks!
  1361.  
  1362.   SYS_REF makes TURBO & TURBO-compiled programs 32-bit clean.
  1363.  
  1364. ›1mFORTRAN 77 and PASCAL [Prospero Software]›0m
  1365.  
  1366. These are the QDOS Versions of the widely used Prospero compilers. There
  1367. are few bugs (in my Version the Double Precision Arithmetic gives problems
  1368. when passed through Functions), and they give access to all QDOS
  1369. functions. They produce QDOS standard relocatable format and use the same
  1370. Linker that comes with the GST Macro assembler and the GST QC compiler.
  1371.  
  1372.   ›3mIMPLEMENTATION NOTES›0m
  1373.  
  1374.   Program copy protection is by means of an EPROM that contains  part of
  1375.   the runtime library. You can get round this by using the supplied PRL
  1376.   (Prospero Resident Library) from RAM, but you have to reload it after
  1377.   every pass of the compiler. The supplied compiler supervisor does not
  1378.   work on the Amiga?
  1379.  
  1380.  
  1381. ›1mComputer one PASCAL [Computer one]›0m
  1382.  
  1383. A generally useful PASCAL compiler with a kind of integrated environment.
  1384. The newer version can generate executable Jobs, but it is still a P-code
  1385. Pascal. String handling is not implemented.
  1386.  
  1387.   ›3mIMPLEMENTATION NOTES›0m
  1388.  
  1389.   This Compiler only works with less than 1MB RAM.
  1390.  
  1391.  
  1392. ›1mMetacomco PASCAL [Metacomco]›0m
  1393.  
  1394.   ›3mIMPLEMENTATION NOTES›0m
  1395.  
  1396.   Forget it !
  1397.  
  1398.  
  1399. ›1mLattice C [Metacomco]›0m
  1400.  
  1401. The only full scale C implementation for the QL. There are bugs and the
  1402. Floating-point arithmetic is terribly slow. It uses QDOS standard
  1403. relocatable format as opposed to Metacomco's own format. As with Lattice
  1404. standard #ASM is not allowed, you have to write machine code programs
  1405. separately.
  1406.  
  1407.   ›3mIMPLEMENTATION NOTES›0m
  1408.  
  1409.   Program copy protection consists of an 8K EPROM that occupies addresses
  1410.   $C000 - $FFFF, mirrored at $E000. Make a copy from a normal QL with
  1411.   SBYTES FLP1_QLC_ROM,48*1024,16*1024. This file can then be loaded on the
  1412.   Amiga at the same address. Use CTRL-ALT-SHIFT-TAB to re-boot and
  1413.   initialise the EPROM.
  1414.  
  1415.  
  1416. ›1mQC [GST]›0m
  1417.  
  1418. An integer C without STRUCTures and UNIONs. It contains some bugs but
  1419. allows the inclusion of machine code via #ASM. Consider it as an
  1420. interesting alternative to Assembler. Output can be assembled via GST's
  1421. macro assembler.
  1422.  
  1423.   ›3mIMPLEMENTATION NOTES›0m
  1424.  
  1425.   Not tested on Amiga-QDOS.
  1426.  
  1427.  
  1428. ›1mDigital C [Digital Precision]›0m
  1429.  
  1430. Integer C without STRUCTures, UNIONs and #ASM. restricted to 32 Kbyte
  1431. code. Derived from a Public Domain C for CP/M.
  1432.  
  1433.   ›3mIMPLEMENTATION NOTES›0m
  1434.  
  1435.   Not tested on Amiga-QDOS.
  1436.  
  1437.  
  1438. ›1mBCPL [Metacomco]›0m
  1439.  
  1440. BCPL is an ancestor of C, and was the first Compiler for QDOS.
  1441. Floating-point arithmetic is implemented via procedures, and is thus
  1442. difficult to use. The compiler uses Metacomcos own special linker.
  1443.  
  1444.   ›3mIMPLEMENTATION NOTES›0m
  1445.  
  1446.   Runs without problems on Amiga-QDOS.
  1447.  
  1448.  
  1449. ›1mLISP [Metacomco]›0m
  1450.  
  1451. A very special Version of LISP, seemingly unrelated to common LISP.
  1452. Graphics and QDOS facilities are implemented.
  1453.  
  1454.   ›3mIMPLEMENTATION NOTES›0m
  1455.  
  1456.   Runs without problems on Amiga-QDOS.
  1457.  
  1458.  
  1459. ›1mFORTH-83 [Computer one]›0m
  1460.  
  1461. Forth started life in pocket calculators and is the language that
  1462. POSTSCRIPT was based upon. Multitasking, graphics, floating point
  1463. arithmetics and QDOS access are all integrated.
  1464.  
  1465.   ›3mIMPLEMENTATION NOTES›0m
  1466.  
  1467.   Runs without problems on Amiga-QDOS.
  1468.  
  1469.  
  1470. ›1mFORTH [Digital Precision]›0m
  1471.  
  1472. Another Forth implementation.
  1473.  
  1474.   ›3mIMPLEMENTATION NOTES›0m
  1475.  
  1476.   Not tested on Amiga-QDOS.
  1477.  
  1478.  
  1479. ›1mGST Macro Assembler [GST]›0m
  1480.  
  1481. The professional Assembler for QDOS. Macro facilities far beyond the
  1482. standard. The assembler is small, fast, and produces standard QDOS
  1483. relocatable Format. Recently re-vamped by QUANTA programmers.
  1484.  
  1485.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1486.  
  1487.   Runs without problems on Amiga-QDOS.
  1488.  
  1489.  
  1490. ›1mMetacomco Assembler [Metacomco]›0m
  1491.  
  1492. Very big (3 overlays), very  slow, lots of bugs. Can be used to link
  1493. M-Code routines to other Metacomco programs, since the linker for all
  1494. Metacomco programs are compatible.
  1495.  
  1496.   ›3mIMPLEMENTATION NOTES›0m
  1497.  
  1498.   Not tested on Amiga-QDOS.
  1499.  
  1500.  
  1501. ›1mComputer one Assembler [Computer one]›0m
  1502.  
  1503. Fast, small, no Macros, no linker.
  1504.  
  1505.   ›3mIMPLEMENTATION NOTES›0m
  1506.  
  1507.   Not tested on Amiga-QDOS.
  1508.  
  1509.  
  1510. ›1mGenQL [HiSoft]›0m
  1511.  
  1512. Together with the MonQL monitor, and a special editor it provides an
  1513. integrated environment. A useful Program.
  1514.  
  1515.   ›3mIMPLEMENTATION NOTES›0m
  1516.  
  1517.   Works fine on Amiga-QDOS.
  1518.  
  1519.  
  1520. ›1mAssembler Workbench [Eddy Yeung]›0m
  1521.  
  1522. Another integrated environment for assembler programmers. It provides
  1523. on-line Help and an in-line assembler.
  1524.  
  1525.   ›3mIMPLEMENTATION NOTES›0m
  1526.  
  1527.   Protected against copying, and available only on Microdrive cartridges.
  1528.   The cracked Version runs on Amiga-QDOS.
  1529.  
  1530.  
  1531. ›1mQMON monitor [Qjump]›0m
  1532.  
  1533. A nice M-Code monitor also available as ROM. It is a good tool to have at
  1534. hand.
  1535.  
  1536.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1537.  
  1538.   Works without problems on Amiga-QDOS
  1539.  
  1540.  
  1541. ›1mMonQL monitor [HiSoft]›0m
  1542.  
  1543. A generally useful monitor/debugger with a corresponding assembler
  1544. (GenQL).
  1545.  
  1546.   ›3mIMPLEMENTATION NOTES›0m
  1547.  
  1548.   Cannot cope with addresses longer than 20 bits, so you can only debug
  1549.   programs in CHIP memory. Perhaps some day HiSoft will make a new Version
  1550.   for Atari/Amiga/Thor2 users. We will be grateful.
  1551.  
  1552. --------------------------------------------------------------------------
  1553.  
  1554. ›1m›4mSOFTWARE OVERVIEW - EMULATORS›0m
  1555.  
  1556. ›1mSolution (MS-DOS emulator) [Digital Precision]›0m
  1557.  
  1558. Slow, but CGA graphics is included and it is said to be faster than the
  1559. Amiga Transformer.
  1560.  
  1561.   ›3mIMPLEMENTATION NOTES›0m
  1562.  
  1563.   Not Tested on Amiga-QDOS.
  1564.  
  1565.  
  1566. ›1mCPMulator (CP/M emulator)›0m
  1567.  
  1568. An 0.5 MHz Z80 with a few bugs.
  1569.  
  1570.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1571.  
  1572.   Tested briefly on Amiga-QDOS and worked OK.
  1573.  
  1574. --------------------------------------------------------------------------
  1575.  
  1576. ›1m›4mSOFTWARE OVERVIEW - UTILITIES›0m
  1577.  
  1578. ›1mSuper Media Manager [Digital Precision]›0m
  1579.  
  1580.   Compiled SuperBASIC. Contains a useful description of how QDOS handles
  1581.   Disks.
  1582.  
  1583. --------------------------------------------------------------------------
  1584.  
  1585. ›1m›4mSOFTWARE OVERVIEW - EDITORS, WORDPROCESSORS, AND GRAPHICS›0m
  1586.  
  1587. ›1mEDITOR [Eddy Yeung] [Qjump]›0m
  1588.  
  1589. This editor comes together with the Assembler Workbench. It is related in
  1590. most functions to the well known (at least to Amiga users) Metacomco ED,
  1591. but is much faster. Macros are not provided. It is my favourite Editor.
  1592.  
  1593.   ›3mIMPLEMENTATION NOTES›0m
  1594.  
  1595.   Runs without problems on Amiga-QDOS.
  1596.  
  1597.  
  1598. ›1mED [Metacomco]›0m
  1599.  
  1600. You should know it from the Amiga.
  1601.  
  1602.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1603.  
  1604.   Runs on Amiga-QDOS without problems.
  1605.  
  1606.  
  1607. ›1mC1Edit [Computer one]›0m
  1608.  
  1609. The editor supplied with all Computer one programs. It is menu driven, but
  1610. not very advanced.
  1611.  
  1612.   ›3mIMPLEMENTATION NOTES›0m
  1613.  
  1614.   Runs without problems on Amiga-QDOS.
  1615.  
  1616.  
  1617. ›1mEDIT [Digital Precision]›0m
  1618.  
  1619. Very advanced editor, including a lot of macro features. Compiled
  1620. SuperBASIC and very big.
  1621.  
  1622.   ›3mIMPLEMENTATION NOTES›0m
  1623.  
  1624.   Not tested on Amiga-QDOS.
  1625.  
  1626.  
  1627. ›1mQuill [Psion]›0m
  1628.  
  1629. The original wordprocessor that was bundled with the QL. Handles
  1630. formatting well, supports bold, italic underline etc., and can create text
  1631. only files via print-to-file option.
  1632.  
  1633.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1634.  
  1635.   Works well on Amiga-QDOS.
  1636.  
  1637.  
  1638. ›1mArchive [Psion]›0m
  1639.  
  1640. The original Data Base that was bundled with the QL. Although not very
  1641. advanced, and though it doesn't handle pictures or sound, it is still
  1642. sufficient for most applications. (This is the kind of Data Base, that
  1643. makes use of a special Language that looks a little bit like BASIC)
  1644.  
  1645.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1646.  
  1647.   Runs on Amiga-QDOS without problems.
  1648.  
  1649.  
  1650. ›1mEasel [Psion]›0m
  1651.  
  1652. The original Business Graphic program that was bundled with the QL. You
  1653. may find better programs on the IBM (for example Boing graph), but it is
  1654. still state of the art.
  1655.  
  1656.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1657.  
  1658.   Runs on Amiga-QDOS without problems.
  1659.  
  1660.  
  1661. ›1mAbacus [Psion]›0m
  1662.  
  1663. The original Spreadsheet that was bundled with the QL. It cannot handle
  1664. graphics, but is still state of the art.
  1665.  
  1666.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1667.  
  1668.   Runs on Amiga-QDOS without problems.
  1669.  
  1670.  
  1671. ›1mXchange [Psion]›0m
  1672.  
  1673. The combined Quill/Easel/Abacus/Archive program, able to multitask, and
  1674. including a 'Task Sequence Language' that allows you to write macros for
  1675. all 4 programs.
  1676.  
  1677.   ›3mIMPLEMENTATION NOTES - 3.22 MJS›0m
  1678.  
  1679.   You need memory expansion to use this program. Runs on Amiga-QDOS
  1680.   without problems.
  1681.  
  1682.  
  1683. ›1mText 87›0m
  1684.  
  1685. An advanced Word processor for QDOS supporting proportional type and
  1686. varying fonts and type sizes.
  1687.  
  1688.   ›3mIMPLEMENTATION NOTES›0m
  1689.  
  1690.   Newer versions run without problems on Amiga-QDOS, though older
  1691.   Versions may cause trouble since they cause a divide by zero error that
  1692.   is now trapped by QDOS.
  1693.  
  1694.  
  1695. ›1mGraphiQL [Talent]›0m
  1696.  
  1697. A picture drawing program for low resolution mode.
  1698.  
  1699.   ›3mIMPLEMENTATION NOTES›0m
  1700.  
  1701.   Protected against piracy. The cracked Version runs on Amiga-QDOS
  1702.  
  1703.  
  1704. ›1mTechniQL [Talent]›0m
  1705.  
  1706. Another drawing program but for high resolution mode. It has interesting
  1707. features, including a plotter driver, and may well be worth using.
  1708.  
  1709.   ›3mIMPLEMENTATION NOTES›0m
  1710.  
  1711.   The cracked Version runs on Amiga-QDOS but with problems.
  1712.  
  1713.  
  1714. ›1mQL Art›0m
  1715.  
  1716. A nice picture drawing program.
  1717.  
  1718.   ›3mIMPLEMENTATION NOTES›0m
  1719.  
  1720.   Is copy-protected and will not run on Amiga-QDOS.
  1721.  
  1722.  
  1723. ›1mMPaint [Medic Datasystems]›0m
  1724.  
  1725. The first picture drawing program for the QL that supported the mouse. It
  1726. is a Basic program with some M-code extensions.
  1727.  
  1728.   ›3mIMPLEMENTATION NOTES›0m
  1729.  
  1730.   The cracked and compiled Version runs on Amiga-QDOS, but with problems
  1731.  
  1732. --------------------------------------------------------------------------
  1733.  
  1734. ›1m›4mSOFTWARE OVERVIEW - GAMES›0m
  1735.  
  1736. Games are mostly protected against copying and many are only available on
  1737. Microdrive cartridges.
  1738.  
  1739. ›1mChess [Psion]›0m
  1740.  
  1741. Really good, a classic.
  1742.  
  1743.   ›3mIMPLEMENTATION NOTES›0m
  1744.  
  1745.   It will probably never run on the Amiga since it contains TAS
  1746.   instructions and attempts to change the contents of the operating
  1747.   system ROM, which is now RAM?
  1748.  
  1749.  
  1750. ›1mMatch (Tennis) [Psion]›0m
  1751.  
  1752. Another classic.
  1753.  
  1754.   ›3mIMPLEMENTATION NOTES›0m
  1755.  
  1756.   It works on the Amiga, but is too fast to play, since the QL had only
  1757.   1/4 of the Speed.
  1758.  
  1759.  
  1760. ›1mQL Cavern [JMF]›0m
  1761.  
  1762. Graphic adventure (not comparable of course to Amiga games)
  1763.  
  1764.   ›3mIMPLEMENTATION NOTES›0m
  1765.  
  1766.   Not too bad, runs on the Amiga with modifications (Interrupts must be
  1767.   enabled!)
  1768.  
  1769. --------------------------------------------------------------------------
  1770.  
  1771. ›1m›4mBIBLIOGRAPHY›0m
  1772.  
  1773. A list of books/publications that proved useful:
  1774.  
  1775. ›1mQL BOOKS›0m
  1776.  
  1777. QL Assembly Language Programming by Colin Opie
  1778.  McGraw-Hill Book Company ISBN 0-07-084777-0
  1779.  
  1780. The Sinclair QDOS Companion by Andrew Pennell
  1781.  Sunshine Books ISBN 0-946408-69-9
  1782.  
  1783. Assembly Language Programming on the Sinclair QL by Andrew Pennell
  1784.  Sunshine Books ISBN 0-946408-42-4
  1785.  
  1786. QL SuperBASIC The Definitive Handbook by Jan Jones
  1787.  First published by McGraw-Hill ISBN 0-07-084784-3
  1788.  Limited reprint by QUANTA: The Independent QL User Group.
  1789.  
  1790. ›1mAMIGA BOOKS›0m
  1791.  
  1792. Amiga System Programmer's Guide by Dittrich, Gelfand & Schemmel
  1793.  Abacus/Data Becker ISBN 1-55755-034-4
  1794.  
  1795. Amiga Hardware Reference Manual,
  1796. Amiga Intuition Reference Manual,
  1797. Amiga ROM Kernel Reference Manual: Exec,
  1798. Amiga ROM Kernel Reference Manual: Libraries and Devices
  1799.  Addison-Wesley Publishing Company Inc.
  1800.  
  1801. The 'Kickstart' Guide to the Amiga
  1802.  Ariadne Software Ltd. ISBN 0 9512921 0 2
  1803.  
  1804. ›1m680X0 BOOKS›0m
  1805.  
  1806. 680X0 Programming by example by Stan Kelly-Bootle
  1807.  Howard W Sams & Company ISBN 0-672-22544-1
  1808.  
  1809. MicroComputer Architecture and programming by John F Wakerly
  1810.  John Wiley & Sons Inc. ISBN 0-471-50021-6
  1811.  
  1812. ›1mPUBLICATIONS›0m
  1813.  
  1814. QL World Magazine
  1815.  (Alas, mo longer in print).
  1816.  
  1817. QREVIEW - news, reviews and articles for QL compatibles
  1818.  (incorporated into IQLR, but...)
  1819.  
  1820. IQLR - International QL Report
  1821.  (...no longer around)
  1822.  
  1823. QUANTA - newsletter (by membership).
  1824.  QUANTA: The independant QL users group.
  1825.  Membership: Bill Newell, QUANTA (UK),
  1826.  213 Manor Rd, Benfleet, Essex, SS7 4JD
  1827.  
  1828. QLtoday - magazine for QL, QDOS, Sinclair Computers, SMSQ etc...
  1829.  (bi-monthly, by subscription)
  1830.  English Office:        German Office:
  1831.  Miracle Systems Ltd.,        Jochen Merz Software
  1832.  20 Mow Barton            Im stillen Winkel 12
  1833.  Yate, Bristol            47169 Duisburg
  1834.  United Kingdom BS17 5NF    Germany
  1835.  Tel: +44 1248 354023        Tel: +49 203 502011
  1836.  
  1837. --------------------------------------------------------------------------
  1838.